/*Copyright (C) 2009 - 2011 MASSART GAUTHIER and Careil Baptiste

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

#include "../headers.h"

void chif_jeu(bool IA) {
	const short MAX = 3, MIN = 1;
	short continuer = 0;
	short choixJoueur1 = 0, choixJoueur2 = 0;
	short choixManches = 0;
	char *contenu_menu = "Pierre\nFeuille\nCiseaux\n\0", *contenu_titre = "CHIFUMI";
	int i = 0;
	char joueur2[30];

	clear();

	afficher_titre(contenu_titre);

	if(IA) {
		get_player_name(0, prenom);
		strcpy(joueur2, "Ordinateur");

	}
	else {
		get_player_name(1, prenom);
		get_player_name(2, joueur2);
	}

	clear();

	while(continuer != 2) {
		short score1 = 0, score2 = 0;
		clear();
		afficher_titre(contenu_titre);
		CSLP_ColorText(CT);
		addstr("\nCombien de manches voulez-vous jouer ? ");
		choixManches = lire_long();

		clear();

		for(i = 1; i <= choixManches ; i++) {
			choixJoueur1 = 0;
			choixJoueur2 = 0;

			choixJoueur1 = chif_get_player_choice(prenom , i, choixManches, contenu_titre, contenu_menu);

			if(IA) {
				choixJoueur2 = random(MIN, MAX);
			}
			else {
				choixJoueur2 = chif_get_player_choice(joueur2, i, choixManches, contenu_titre, contenu_menu);
			}

			CSLP_ColorText(CT);

			if(choixJoueur1 == 1) {
				chif_pierre(20, 45);
			}

			if(choixJoueur1 == 2) {
				chif_feuille(20, 45);
			}

			if(choixJoueur1 == 3) {
				chif_ciseaux(20, 45);
			}

			CSLP_Sleep(300);

			if(choixJoueur2 == 1) {
				chif_pierre(20, 70);
			}

			if(choixJoueur2 == 2) {
				chif_feuille(20, 70);
			}

			if(choixJoueur2 == 3) {
				chif_ciseaux(20, 70);
			}

			if(choixJoueur1 == choixJoueur2) {
				addstr("\nMatch Nul\n");
			}
			else if((choixJoueur1 == 1 && choixJoueur2 == 3) || (choixJoueur1 == 2 && choixJoueur2 == 1) || (choixJoueur1 == 3 && choixJoueur2 == 2)) {
				printw("\n%s a gagné !\n", prenom);
				score1++;
			}
			else if((choixJoueur1 == 1 && choixJoueur2 == 2) || (choixJoueur1 == 2 && choixJoueur2 == 3) || (choixJoueur1 == 3 && choixJoueur2 == 1)) {
				printw("\n%s a gagné !\n", joueur2);
				score2++;
			}

			getch();
		}

		if(score1 > score2) {
			printw("\n%s gagne avec %ld point(s) contre %ld point(s) pour %s!!", prenom, score1, score2, joueur2);
		}
		else if(score1 < score2) {
			printw("\n%s gagne avec %ld point(s) contre %ld point(s) pour %s!!", joueur2, score2, score1, prenom);
		}
		else if(score1 == score2) {
			printw("\nMatch nul! %ld partout!", score1);
		}

		getch();

		clear();
		continuer = afficher_menu_recommencer(contenu_titre);
		CSLP_ColorText(CT);
		clear();
	}
}
